home *** CD-ROM | disk | FTP | other *** search
/ Shareware Games Galore! / Shareware Games Galore!.iso / arcade / gameser5 / draw.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1982-12-13  |  10.5 KB  |  377 lines

  1. 0  'comment line 2000 to display instructions on the monochrome display.
  2. 10  KEY OFF
  3. 15  CLS:CURSX=0:CURSY=0:SAVEX=0:SAVEY=0:PENDOWN=0:ANGLE=0:F=0
  4. 17  DIM PICT(1),DIR(1)
  5. 18  DEF SEG
  6. 20  GOSUB 2000
  7. 30  LOCATE 1,20:COLOR 1,0
  8. 40  PRINT "COMMANDS FOR GRAPHICS ACTIONS":COLOR 7,0
  9. 60  COLOR 15,0:PRINT "F1";:COLOR 7,0:PRINT" - SAVE CURRENT POINT"
  10. 70  COLOR 15,0:PRINT "F2";:COLOR 7,0:PRINT" - DRAW LINE BETWEEN CURRENT POINT AND SAVED POINT"
  11. 80  COLOR 15,0:PRINT "F3";:COLOR 7,0:PRINT" - DRAW BOX BETWEEN SAVED POINT AND CURRENT POINT"
  12. 90  COLOR 15,0:PRINT "F4";:COLOR 7,0:PRINT" - DRAW CIRCLE USING CURRENT POINT AS CENTER AND SAVED POINT AS RADIUS"
  13. 100  COLOR 15,0:PRINT "F5";:COLOR 7,0:PRINT" - PEN DOWN MODE"
  14. 110  COLOR 15,0:PRINT "F6";:COLOR 7,0:PRINT" - PEN UP MODE"
  15. 120  COLOR 15,0:PRINT "F7";:COLOR 7,0:PRINT" - GET FROM SCREEN WITH CURRENT AND SAVED POINTS DEFINING AREA"
  16. 125  COLOR 15,0:PRINT "F8";:COLOR 7,0:PRINT" - PUT SAVED PICTURE ON SCREEN"
  17. 130  COLOR 15,0:PRINT "F9";:COLOR 7,0:PRINT" - SWITCH DRAWING COLOR"
  18. 140  COLOR 15,0:PRINT "F10";:COLOR 7,0:PRINT" - CLEAR SCREEN"
  19. 150  COLOR 15,0:PRINT CHR$(24);:COLOR 7,0:PRINT" - MOVE CROSS-HAIR UP"
  20. 160  COLOR 15,0:PRINT CHR$(27);:COLOR 7,0:PRINT" - MOVE CROSS-HAIR TO THE LEFT"
  21. 170  COLOR 15,0:PRINT CHR$(26);:COLOR 7,0:PRINT" - MOVE CROSS-HAIR TO THE RIGHT"
  22. 180  COLOR 15,0:PRINT CHR$(25);:COLOR 7,0:PRINT" - MOVE CROSS-HAIR DOWN"
  23. 185  COLOR 15,0:PRINT "PgUp";:COLOR 7,0:PRINT" - TAB UP"
  24. 186  COLOR 15,0:PRINT "PgDn";:COLOR 7,0:PRINT" - TAB DOWN"
  25. 187  COLOR 15,0:PRINT "INKEY$"+CHR$(27);:COLOR 7,0:PRINT" - TAB LEFT"
  26. 188  COLOR 15,0:PRINT CHR$(26)+"OFF";:COLOR 7,0:PRINT" - TAB RIGHT"
  27. 189  COLOR 15,0:PRINT "Home";:COLOR 7,0:PRINT" - MOVE CURSOR TO HOME POSITION"
  28. 191  COLOR 15,0:PRINT "E";:COLOR 7,0:PRINT" - ERASE SAVED POINT"
  29. 192  COLOR 15,0:PRINT "P";:COLOR 7,0:PRINT" - PAINT INSIDE OF OBJECT"
  30. 193  COLOR 15,0:PRINT "L";:COLOR 7,0:PRINT" - CHANGE PALETTE"
  31. 194  COLOR 15,0:PRINT "B";:COLOR 7,0:PRINT" - CHANGE BACKGROUND COLOR";
  32. 195  LOCATE 25,1:COLOR 15,0:PRINT "X";:COLOR 7,0:PRINT" - TERMINATE PROGRAM";
  33. 196  LOCATE 17,40:COLOR 15,0:PRINT "End";:COLOR 7,0:PRINT" - MOVE CURSOR TO END";
  34. 197  LOCATE 18,40:COLOR 15,0:PRINT "S";:COLOR 7,0:PRINT" - SAVE SCREEN TO FILE";
  35. 198  LOCATE 19,40:COLOR 15,0:PRINT "R";:COLOR 7,0:PRINT" - RESTORE FILE TO SCREEN";
  36. 199  LOCATE 20,40:COLOR 15,0:PRINT "1";:COLOR 7,0:PRINT" - DRAW CAR";
  37. 200  LOCATE 21,40:COLOR 15,0:PRINT "2";:COLOR 7,0:PRINT" - DRAW DONKEY";
  38. 201  LOCATE 22,40:COLOR 15,0:PRINT "I";:COLOR 7,0:PRINT" - INCREMENT FILE NUMBER";
  39. 202  LOCATE 23,40:COLOR 15,0:PRINT "/ AND SHIFT /";:COLOR 7,0:PRINT" - MOVE DIAGONAL TO RIGHT";
  40. 203  LOCATE 24,40:COLOR 15,0:PRINT "\ AND SHIFT \";:COLOR 7,0:PRINT" - MOVE DIAGONAL TO LEFT";
  41. 204  LOCATE 25,40:COLOR 15,0:PRINT "T";:COLOR 7,0:PRINT" - CHANGE ROTATION FOR NUMERIC PICTURES";
  42. 205  LOCATE 16,40:COLOR 15,0:PRINT "M";:COLOR 7,0:PRINT" - MOVE CURSOR TO SAVED POINT";
  43. 206  WHILE INKEY$="":WEND
  44. 208  FOR I=1 TO 14:KEY(I) ON:NEXT I
  45. 210  ON KEY(1) GOSUB 3000
  46. 220  ON KEY(2) GOSUB 4000
  47. 230  ON KEY(3) GOSUB 5000
  48. 240  ON KEY(4) GOSUB 6000
  49. 250  ON KEY(5) GOSUB 7000
  50. 260  ON KEY(6) GOSUB 8000
  51. 270  ON KEY(7) GOSUB 9000
  52. 280  ON KEY(8) GOSUB 10000
  53. 290  ON KEY(9) GOSUB 11000
  54. 300  ON KEY(10) GOSUB 12000
  55. 310  ON KEY(11) GOSUB 13000
  56. 320  ON KEY(12) GOSUB 14000
  57. 330  ON KEY(13) GOSUB 15000
  58. 340  ON KEY(14) GOSUB 16000
  59. 350  GOSUB 1000
  60. 355  GOSUB 18000
  61. 360  IF INKEY$<>"" THEN POKE 106,0:GOTO 360
  62. 370  SW=1
  63. 380  WHILE SW=1
  64. 390  IN$=INKEY$
  65. 395  IF IN$="" THEN GOTO 430
  66. 400  IF IN$="x" OR IN$="X" THEN GOSUB 17000:GOTO 430
  67. 401  IF IN$="p" OR IN$="P" THEN GOSUB 20000:GOTO 430
  68. 402  IF IN$=CHR$(9) THEN GOSUB 21000:GOTO 430
  69. 403  IF LEN(IN$)=2 AND RIGHT$(IN$,1)=CHR$(15) THEN GOSUB 22000:GOTO 430
  70. 404  IF LEN(IN$)=2 AND RIGHT$(IN$,1)=CHR$(73) THEN GOSUB 23000:GOTO 430
  71. 405  IF LEN(IN$)=2 AND RIGHT$(IN$,1)=CHR$(81) THEN GOSUB 24000:GOTO 430
  72. 406  IF IN$="l" OR IN$="L" THEN GOSUB 25000:GOTO 430
  73. 407  IF IN$="b" OR IN$="B" THEN GOSUB 26000:GOTO 430
  74. 408  IF IN$="E" OR IN$="e" THEN GOSUB 27000:GOTO 430
  75. 409  IF LEN(IN$)=2 AND RIGHT$(IN$,1)=CHR$(71) THEN GOSUB 28000:GOTO 430
  76. 410  IF LEN(IN$)=2 AND RIGHT$(IN$,1)=CHR$(79) THEN GOSUB 29000:GOTO 430
  77. 411  IF IN$="s" OR IN$="S" THEN GOSUB 30000:GOTO 430
  78. 412  IF IN$="r" OR IN$="R" THEN GOSUB 31000:GOTO 430
  79. 413  IF IN$="1" THEN GOSUB 32000:GOTO 430
  80. 414  IF IN$="2" THEN GOSUB 33000:GOTO 430
  81. 415  IF IN$="T"OR IN$="t" THEN GOSUB 34000:GOTO 430
  82. 416  IF IN$="I"OR IN$="i" THEN GOSUB 35000:GOTO 430
  83. 417  IF IN$="/" THEN DIR(0)=2:DIR(1)=2:GOSUB 36000:GOTO 430
  84. 418  IF IN$="?" THEN DIR(0)=2:DIR(1)=-2:GOSUB 36000:GOTO 430
  85. 419  IF IN$="\" THEN DIR(0)=-2:DIR(1)=2:GOSUB 36000:GOTO 430
  86. 420  IF IN$="|" THEN DIR(0)=-2:DIR(1)=-2:GOSUB 36000:GOTO 430
  87. 421  IF IN$="m" OR IN$="M" THEN GOSUB 37000:GOTO 430
  88. 428  IF IN$<>""THEN BEEP
  89. 430  WEND
  90. 440  GOSUB 2000
  91. 450  FOR I=1 TO 14:KEY(I) OFF:NEXT I
  92. 460  GOTO 65200
  93. 1000  REM switch to color/graphics adapter
  94. 1010  DEF SEG=0
  95. 1020  POKE &H410,(PEEK(&H410) AND &HCF) OR &H20
  96. 1030  DEF SEG
  97. 1040  LOCATE ,,1,6,7
  98. 1050  SCREEN 1,0
  99. 1060  RETURN
  100. 2000  GOTO 2050'REM SWITCH TO MONOCHROME ADAPTER
  101. 2010  DEF SEG=0
  102. 2020  POKE &H410,(PEEK(&H410) OR &H30)
  103. 2030  DEF SEG
  104. 2040  LOCATE ,,1,12,13
  105. 2050  SCREEN 0
  106. 2060  WIDTH 80
  107. 2070  RETURN
  108. 3000  REM SUBROUTINE FOR F1 - SAVE POINT
  109. 3010  SAVEX=CURSX
  110. 3020  SAVEY=CURSY
  111. 3022  PUT (CURSX-5,CURSY-5),XHR
  112. 3025  PSET (SAVEX,SAVEY),DCOLOR
  113. 3027  PUT (CURSX-5,CURSY-5),XHR
  114. 3030  GOSUB 19000
  115. 3040  RETURN
  116. 4000  REM SUBROUTINE FOR F2 - DRAW LINE
  117. 4005  PUT (CURSX-5,CURSY-5),XHR
  118. 4010  LINE (SAVEX,SAVEY)-(CURSX,CURSY),DCOLOR
  119. 4015  PUT (CURSX-5,CURSY-5),XHR
  120. 4020  RETURN
  121. 5000  REM SUBROUTINE FOR F3 - DRAW BOX
  122. 5005  PUT (CURSX-5,CURSY-5),XHR
  123. 5010  LINE (SAVEX,SAVEY)-(CURSX,CURSY),DCOLOR,B
  124. 5015  PUT (CURSX-5,CURSY-5),XHR
  125. 5020  RETURN
  126. 6000  REM SUBROUTINE FOR F4 - CIRCLE
  127. 6002  CX#=CURSX:CY#=CURSY:SX#=SAVEX:SY#=SAVEY
  128. 6010  DX2#=ABS(CX#-SX#)^2
  129. 6020  DY2#=ABS(CY#-SY#)^2
  130. 6030  DIST#=SQR(DX2#+DY2#)
  131. 6035  PUT (CURSX-5,CURSY-5),XHR
  132. 6040  CIRCLE (CURSX,CURSY),DIST#,DCOLOR
  133. 6045  PUT (CURSX-5,CURSY-5),XHR
  134. 6050  RETURN
  135. 7000  REM SUBROUTINE FOR F5 - PENDOWN
  136. 7005  PENDOWN=1
  137. 7006  PUT (CURSX-5,CURSY-5),XHR
  138. 7007  LINE (0,0)-(MINX,MINY),2,BF
  139. 7008  PUT (CURSX-5,CURSY-5),XHR
  140. 7010  RETURN
  141. 8000  REM SUBROUTINE FOR F6 - PEN UP
  142. 8005  PENDOWN=0
  143. 8006  PUT (CURSX-5,CURSY-5),XHR
  144. 8007  LINE (0,0)-(MINX,MINY),0,BF
  145. 8008  PUT (CURSX-5,CURSY-5),XHR
  146. 8010  RETURN
  147. 9000  REM SUBROUTINE FOR F7 - GET FROM SCREEN
  148. 9010  PUT (CURSX-5,CURSY-5),XHR
  149. 9020  DX=ABS(SAVEX-CURSX)
  150. 9030  DY=ABS(SAVEY-CURSY)
  151. 9040  DM=4+INT((DX*2+7)/8)*DY
  152. 9050  DM=45+INT(DM/4)
  153. 9060  ERASE PICT
  154. 9070  DIM PICT(DM)
  155. 9075  PRESET (SAVEX,SAVEY)
  156. 9080  GET (SAVEX,SAVEY)-(CURSX,CURSY),PICT
  157. 9090  PUT (CURSX-5,CURSY-5),XHR
  158. 9095  PSET (SAVEX,SAVEY),DCOLOR
  159. 9100  RETURN
  160. 10000  REM SUBROUTINE FOR F8 - PUT
  161. 10005  ON ERROR GOTO 10050
  162. 10010  PUT (CURSX-5,CURSY-5),XHR
  163. 10020  PUT (CURSX,CURSY),PICT
  164. 10030  PUT (CURSX-5,CURSY-5),XHR
  165. 10040  RETURN
  166. 10050  BEEP
  167. 10060  RESUME NEXT
  168. 11000  REM SUBROUTINE FOR F9 - SWITCH DRAWING COLORS
  169. 11010  DCOLOR=DCOLOR+1
  170. 11012  IF DCOLOR = 4 THEN DCOLOR=0
  171. 11014  LINE (MAXX,0)-(319,MINY),DCOLOR,BF
  172. 11020  RETURN
  173. 12000  REM SUBROUTINE FOR F10 - CLEAR SCREEN
  174. 12010  CLS
  175. 12020  GOSUB 19000
  176. 12025  LINE (MAXX,0)-(319,MINY),DCOLOR,BF
  177. 12027  IF PENDOWN=1 THEN LINE (0,0)-(MINX,MINY),2,BF
  178. 12030  PUT (CURSX-5,CURSY-5),XHR
  179. 12040  RETURN
  180. 13000  REM SUBROUTINE FOR CURSOR UP
  181. 13005  KEY(7) STOP
  182. 13010  PUT (CURSX-5,CURSY-5),XHR
  183. 13020  CURSY=CURSY-1
  184. 13030  IF CURSY<MINY THEN CURSY=MAXY
  185. 13035  IF PENDOWN=1 THEN PSET(CURSX,CURSY),DCOLOR
  186. 13040  PUT (CURSX-5,CURSY-5),XHR
  187. 13045  GOSUB 19040
  188. 13047  KEY(7) ON
  189. 13500  RETURN
  190. 14000  REM SUBROUTINE FOR CURSOR LEFT
  191. 14010  PUT (CURSX-5,CURSY-5),XHR
  192. 14020  CURSX=CURSX-1
  193. 14030  IF CURSX<MINX THEN CURSX=MAXX
  194. 14035  IF PENDOWN=1 THEN PSET(CURSX,CURSY),DCOLOR
  195. 14040  PUT (CURSX-5,CURSY-5),XHR
  196. 14045  GOSUB 19040
  197. 14050  RETURN
  198. 15000  REM SUBROUTINE FOR CURSOR RIGHT
  199. 15010  PUT (CURSX-5,CURSY-5),XHR
  200. 15020  CURSX=CURSX+1
  201. 15030  IF CURSX>MAXX THEN CURSX=MINX
  202. 15035  IF PENDOWN=1 THEN PSET(CURSX,CURSY),DCOLOR
  203. 15040  PUT (CURSX-5,CURSY-5),XHR
  204. 15045  GOSUB 19040
  205. 15050  RETURN
  206. 16000  REM SUBROUTINE FOR CURSOR DOWN
  207. 16010  PUT (CURSX-5,CURSY-5),XHR
  208. 16020  CURSY=CURSY+1
  209. 16030  IF CURSY>MAXY THEN CURSY=MINY
  210. 16035  IF PENDOWN=1 THEN PSET(CURSX,CURSY),DCOLOR
  211. 16040  PUT (CURSX-5,CURSY-5),XHR
  212. 16045  GOSUB 19040
  213. 16050  RETURN
  214. 17000  REM SUBROUTINE TO END PROGRAM
  215. 17010  SW=0
  216. 17015  ON ERROR GOTO 0
  217. 17020  RETURN
  218. 18000  REM SUBROUTINE TO INITIALIZE GRAPHICS FUNCTIONS
  219. 18010  BACKGCOLOR=8:PALETTE=0
  220. 18020  COLOR BACKGCOLOR,PALETTE
  221. 18040  DCOLOR=2
  222. 18050  LINE (5,0)-(5,10),1
  223. 18060  LINE (0,5)-(10,5),1
  224. 18070  DIM XHR(12)
  225. 18080  GET (0,0)-(10,10),XHR
  226. 18090  MINX=5:MAXX=314:MINY=5:MAXY=185
  227. 18100  CURSX=INT((MAXX-MINX)/2)
  228. 18110  CURSY=INT((MAXY-MINY)/2)
  229. 18120  CLS
  230. 18130  PUT (CURSX-5,CURSY-5),XHR
  231. 18135  LINE (MAXX,0)-(319,MINY),DCOLOR,BF
  232. 18140  GOSUB 19000
  233. 18150  RETURN
  234. 19000  REM SUBROUTINE TO PUT CURRENT AND SAVED CURSOR VALUES ON SCREEN
  235. 19030  LOCATE 25,18:PRINT "SAVED ";:PRINT USING "###_,###";SAVEX,SAVEY;
  236. 19035  LOCATE 25,32:PRINT USING "& ##";"FILE#",F;
  237. 19040  LOCATE 25,1:PRINT "CURRENT ";:LOCATE 25,9:PRINT USING "###_,###";CURSX,CURSY;
  238. 19050  RETURN
  239. 20000  REM SUBROUTINE TO DO PAINTING
  240. 20010  PUT (CURSX-5,CURSY-5),XHR
  241. 20020  PAINT (CURSX,CURSY),DCOLOR
  242. 20030  PUT (CURSX-5,CURSY-5),XHR
  243. 20040  RETURN
  244. 21000  REM SUBROUTINE FOR TAB RIGHT
  245. 21005  IF PENDOWN=1 THEN SX=CURSX:SY=CURSY
  246. 21010  PUT (CURSX-5,CURSY-5),XHR
  247. 21020  CURSX=CURSX+10
  248. 21030  IF CURSX>MAXX THEN CURSX=MINX
  249. 21035  IF PENDOWN=1 THEN LINE(SX,SY)-(CURSX,CURSY),DCOLOR
  250. 21040  PUT (CURSX-5,CURSY-5),XHR
  251. 21045  GOSUB 19040
  252. 21050  RETURN
  253. 22000  REM SUBROUTINE FOR TAB LEFT
  254. 22005  IF PENDOWN=1 THEN SX=CURSX:SY=CURSY
  255. 22010  PUT (CURSX-5,CURSY-5),XHR
  256. 22020  CURSX=CURSX-10
  257. 22030  IF CURSX<MINX THEN CURSX=MAXX
  258. 22035  IF PENDOWN=1 THEN LINE(SX,SY)-(CURSX,CURSY),DCOLOR
  259. 22040  PUT (CURSX-5,CURSY-5),XHR
  260. 22045  GOSUB 19040
  261. 22050  RETURN
  262. 23000  REM SUBROUTINE FOR TAB UP
  263. 23005  IF PENDOWN=1 THEN SX=CURSX:SY=CURSY
  264. 23010  PUT (CURSX-5,CURSY-5),XHR
  265. 23020  CURSY=CURSY-10
  266. 23030  IF CURSY<MINY THEN CURSY=MAXY
  267. 23035  IF PENDOWN=1 THEN LINE(SX,SY)-(CURSX,CURSY),DCOLOR
  268. 23040  PUT (CURSX-5,CURSY-5),XHR
  269. 23045  GOSUB 19040
  270. 23050  RETURN
  271. 24000  REM SUBROUTINE FOR TAB DOWN
  272. 24005  IF PENDOWN=1 THEN SX=CURSX:SY=CURSY
  273. 24010  PUT (CURSX-5,CURSY-5),XHR
  274. 24020  CURSY=CURSY+10
  275. 24030  IF CURSY>MAXY THEN CURSY=MINY
  276. 24035  IF PENDOWN=1 THEN LINE(SX,SY)-(CURSX,CURSY),DCOLOR
  277. 24040  PUT (CURSX-5,CURSY-5),XHR
  278. 24045  GOSUB 19040
  279. 24050  RETURN
  280. 25000  REM SUBROUTINE TO CHANGE PALETTE
  281. 25010  IF PALETTE=0 THEN PALETTE=1 ELSE PALETTE=0
  282. 25020  COLOR BACKGCOLOR,PALETTE
  283. 25030  RETURN
  284. 26000  REM SUBROUTINE TO CHANGE BACKGROUND COLOR
  285. 26010  BACKGCOLOR=BACKGCOLOR+1
  286. 26020  IF BACKGCOLOR=16 THEN BACKGCOLOR=0
  287. 26030  COLOR BACKGCOLOR,PALETTE
  288. 26040  RETURN
  289. 27000  REM SUBROUTINE TO ERASE SAVED POINT
  290. 27010  PRESET (SAVEX,SAVEY)
  291. 27020  RETURN
  292. 28000  REM SUBROUTINE TO MOVE CURSOR TO "HOME"
  293. 28005  PUT (CURSX-5,CURSY-5),XHR
  294. 28010  CURSX=MINX
  295. 28020  CURSY=MINY
  296. 28030  PUT (CURSX-5,CURSY-5),XHR
  297. 28040  GOSUB 19040
  298. 28050  RETURN
  299. 29000  REM SUBROUTINE TO MOVE CURSOR TO "END"
  300. 29005  PUT (CURSX-5,CURSY-5),XHR
  301. 29010  CURSX=MAXX
  302. 29020  CURSY=MAXY
  303. 29030  PUT (CURSX-5,CURSY-5),XHR
  304. 29040  GOSUB 19040
  305. 29050  RETURN
  306. 30000  REM SUBROUTINE TO SAVE SCREEN IN FILE
  307. 30005  PUT (CURSX-5,CURSY-5),XHR
  308. 30010  DEF SEG=&HB800
  309. 30020  BSAVE "FPICT"+CHR$(48+F)+".DAT",0,&H4000
  310. 30030  DEF SEG
  311. 30035  PUT (CURSX-5,CURSY-5),XHR
  312. 30040  RETURN
  313. 31000  REM SUBROUTINE TO RESTORE SCREEN FROM FILE
  314. 31010  DEF SEG=&HB800
  315. 31015  CLS
  316. 31020  BLOAD "FPICT"+CHR$(48+F)+".DAT",0
  317. 31025  PUT (CURSX-5,CURSY-5),XHR
  318. 31027  LINE (MAXX,0)-(319,MINY),DCOLOR,BF
  319. 31028  IF PENDOWN=1 THEN LINE (0,0)-(MINX,MINY),2,BF ELSE LINE (0,0)-(MINX,MINY),0,BF
  320. 31030  GOSUB 19000
  321. 31040  RETURN
  322. 32000  REM SUBROUTINE TO DRAW PICTURE 1 - CAR
  323. 32005  PUT (CURSX-5,CURSY-5),XHR
  324. 32010  PRESET (CURSX,CURSY)
  325. 32020  DRAW "a=ANGLE;S10C=DCOLOR;"
  326. 32030  DRAW"r3m+1,3d2R1ND2u1r2d4l2u1l1"
  327. 32040  DRAW"d7R1nd2u2r3d6l3u2l1d3m-1,1l3"
  328. 32050  DRAW"m-1,-1u3l1d2l3u6r3d2nd2r1u7l1d1l2"
  329. 32060  DRAW"u4r2d1nd2R1U2"
  330. 32070  DRAW"M+1,-3"
  331. 32080  DRAW"BD10D2R3U2M-1,-1L1M-1,1"
  332. 32090  DRAW"BD3D1R1U1L1BR2R1D1L1U1
  333. 32100  DRAW"BD2BL2D1R1U1L1BR2R1D1L1U1
  334. 32110  DRAW"BD2BL2D1R1U1L1BR2R1D1L1U1
  335. 32120  PUT (CURSX-5,CURSY-5),XHR
  336. 32130  RETURN
  337. 33000  REM SUBROUTINE TO DRAW PICTURE 2 - DONKEY
  338. 33015  PUT (CURSX-5,CURSY-5),XHR
  339. 33017  DRAW "BM=CURSX;,=CURSY;"
  340. 33030  DRAW"A=ANGLE;S15C=DCOLOR;"
  341. 33040  DRAW"M+2,-4R8M+1,-1U1M+1,+1M+2,-1
  342. 33050  DRAW"M-1,1M+1,3M-1,1M-1,-2M-1,2"
  343. 33060  DRAW"D3L1U3M-1,1D2L1U2L3D2L1U2M-1,-1"
  344. 33070  DRAW"D3L1U5M-2,3U1"
  345. 33080  PUT (CURSX-5,CURSY-5),XHR
  346. 33090  RETURN
  347. 34000  REM SUBROUTINE TO CHANGE ROTATION ON NUMERIC PICTURES
  348. 34010  ANGLE=ANGLE+1
  349. 34020  IF ANGLE=4 THEN ANGLE=0
  350. 34030  RETURN
  351. 35000  REM SUBROUTINE TO INCREMENT FILE NUMBER
  352. 35010  F=F+1
  353. 35020  IF F=5 THEN F=0
  354. 35030  GOSUB 19035
  355. 35040  RETURN
  356. 36000  REM SUBROUTINE TO MOVE DIAGONALLY
  357. 36010  PUT (CURSX-5,CURSY-5),XHR
  358. 36020  IF PENDOWN=1 THEN SX=CURSX:SY=CURSY
  359. 36030  CURSX=CURSX+DIR(0)
  360. 36040  IF DIR(0)<0 THEN IF CURSX < MINX THEN CURSX=MAXX
  361. 36050  IF DIR(0)>0 THEN IF CURSX > MAXX THEN CURSX=MINX
  362. 36060  CURSY=CURSY+DIR(1)
  363. 36070  IF DIR(1)<0 THEN IF CURSY < MINY THEN CURSY=MAXY
  364. 36080  IF DIR(1)>0 THEN IF CURSY > MAXY THEN CURSY=MINY
  365. 36090  IF PENDOWN=1 THEN LINE (SX,SY)-(CURSX,CURSY),DCOLOR
  366. 36100  PUT (CURSX-5,CURSY-5),XHR
  367. 36110  GOSUB 19040
  368. 36120  RETURN
  369. 37000  REM SUBROUTINE TO MOVE CURSOR TO SAVED POINT
  370. 37010  PUT (CURSX-5,CURSY-5),XHR
  371. 37020  CURSX=SAVEX
  372. 37030  CURSY=SAVEY
  373. 37040  PUT (CURSX-5,CURSY-5),XHR
  374. 37050  GOSUB 19040
  375. 37060  RETURN
  376. 65200  RUN"basmenu
  377.